package com.hyt.it.ogt.pj.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hyt.it.ogt.pj.model.entity.Project;
import com.hyt.it.ogt.pj.model.vo.PaperItemVo;
import com.hyt.it.ogt.pj.model.vo.download.InterfaceDocVo;
import com.hyt.it.ogt.pj.model.vo.download.ObjectiveScoreVo;
import com.hyt.it.ogt.pj.model.vo.download.StudentVo;
import com.hyt.it.ogt.pj.model.vo.download.SubjectVo;
import com.hyt.it.ogt.pj.model.vo.download.TopicVO;
import com.hyt.model.tps.vo.Bucket;
import com.obs.services.ObsClient;


/**
 */
public interface IProjectDataDownLoadService extends IService<Project> {

    
    /**
     * 获取科目信息列表
     * @param projectId
     * @param officeId
     */
	List<SubjectVo> getSubjectVos(String projectId, String officeId) throws Exception;
	
	
	/**
     * 获取科目信息列表
     * @param projectId
     * @param officeId
     */
	List<SubjectVo> getDkbSubjectVos(String projectId, String officeId) throws Exception;
	
	
	/**
     * 获取考生客观题分数列表
     * @param projectId
     */
	List<ObjectiveScoreVo> getObjectiveScoreVos(String projectId) throws Exception;
	
	
	/**
     * 获取考生客观题分数列表
     * @param projectId
     */
	Map<String, List<ObjectiveScoreVo>> getObjectiveScoreVoMaps(String projectId, List<SubjectVo> subjectVos) throws Exception;



	/**
	 * 获取报名考生列表
	 * @param projectId
	 */
	List<StudentVo> getStudentVos(String projectId) throws Exception;
	
	/**
	 * 获取报名考生列表
	 * @param projectId
	 */
	Map<String, List<StudentVo>> getStudentVosMap(String projectId, List<SubjectVo> subjectVos) throws Exception;


	/**
	 * 获取接口文档接口
	 * @param projectId
	 * @param officeId
	 */
    List<InterfaceDocVo> getInterfaceDocVos(String projectId, String officeId) throws Exception;
    
    /**
	 * 获取接口文档接口
	 * @param projectId
	 * @param officeId
	 */
    Map<String, List<InterfaceDocVo>> getInterfaceDocVoMaps(String projectId, List<SubjectVo> subjectVos, Map<String, List<StudentVo>> studenMap) throws Exception;


	/****
	 * 获取试卷的主观题树
	 * @param projectId
	 * @return
	 * @throws Exception
	 */
	List<PaperItemVo> getSubjectivePaperItemTree(String paperId) throws Exception;

	/**
	 * 获取题块接口
	 * @param paperId
	 */
	List<TopicVO> getTopicList(String paperId) throws Exception;
	
	
	/**
	 * 获取obs客户端信息
	 */
	ObsClient getObsClient();
	
	/**
	 * 获取Bucket信息
	 */
	Bucket getBucketConfig();
}
